home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Utilities / Unix / satan-1.1.1 / bin / ftp.satan < prev    next >
Text File  |  1996-04-24  |  1KB  |  69 lines

  1. #!/usr/local/bin/perl
  2.  
  3. # See if the target provides anonymous ftp, non-intrusive.
  4.  
  5. require 'config/paths.pl';
  6. require 'config/satan.cf';
  7. require 'perl/misc.pl';
  8. require 'perllib/getopts.pl';
  9.  
  10. $usage="Usage: $0 [-v] target";
  11. &Getopts("v") || die $usage;
  12. ($#ARGV == 0) || die $usage;
  13.  
  14. $target = $ARGV[0];
  15.  
  16. $service = &basename($0, ".satan");
  17.  
  18. open(FTP, "$FTP -nv <<EOF
  19. open $target
  20. quote user anonymous
  21. quote pass -satan\@
  22. cd /
  23. put /etc/group $$.foo
  24. dele $$.foo
  25. quit
  26. EOF |") || die "cannot run $FTP";
  27. while(<FTP>) {
  28.     if (defined($opt_v)) {
  29.     print;
  30.     }
  31.     if (/^230/) {
  32.     $status = "a";
  33.     $severity = "x";
  34.     $trustee = "";
  35.     $trusted = "";
  36.     $service_output = "ANONYMOUS";
  37.     $text = "offers anon ftp";
  38.     $texts{&satan_string()} = 1;
  39.    } elsif (/^226/) {
  40.     $severity = "nw";
  41.     $trustee = "~ftp@$target";
  42.     $trusted = "ANY\@ANY";
  43.     $service_output = "writable FTP home directory";
  44.     $text = "~ftp is writable";
  45.     $texts{&satan_string()} = 1;
  46.    } elsif (/^553/) {
  47.     $severity = "";
  48.     $trustee = "";
  49.     $trusted = "";
  50.     $service_output = "";
  51.     $text = "~ftp is not writable";
  52.     $texts{&satan_string()} = 1;
  53.    } elsif (/^530/) {
  54.     $status = "a";
  55.         $severity = "";
  56.         $trustee = "";
  57.         $trusted = "";
  58.         $service_output = "";
  59.     $text = "offers no anon ftp";
  60.     $texts{&satan_string()} = 1;
  61.     } elsif (/^Not connected/) {
  62.     exit 1;
  63.     }
  64. }
  65.  
  66. foreach $key (keys %texts) {
  67.     print "$key\n";
  68. }
  69.